/**
 * 电阻阻值: https://www.bilibili.com/video/BV1Mb411e7re?p=4
 * 102 : 10*10^2 = 1000Ω  = 1K
 * 473 : 47*10^3 = 47000Ω = 47K
 * 
 * 视频的8个发光二极管是P2口, 跳线帽 JP595插上(供电)
 * TX-1C是P1口
 */
//Keil导入: 右击空白-> insert #include <REGX52.H>
#include <REGX52.H>
#include "Link/Delay_Utils.h"

/**
 * 程序执行1遍后, 会再次回到开始位置, 一直执行!!! ∴写 while(1); 停止它的执行
 * ∵LED模块连接的引脚(P20~P27), 连接的是单片机的P2寄存器
 * 所以, 需要向P2寄存器的io口写数据
 */
void mai_light1() {
    /**
     * P2是一个寄存器
     * TODO 不知为何不能直接写 2进制??
     */
//    P2 = 0b11111110;
    P1 = 0xFE;
    while(1);
}

/**
 * 2.闪烁: https://www.bilibili.com/video/BV1Mb411e7re?p=5
 */
void main_twinkle() {
    while(1) {
        P1 = 0xFE;  //最低位亮
        Delayms(500);
        P1 = 0xFF;  //灭
        Delayms(500);
    }
}

/**
 * 3.流水灯: https://www.bilibili.com/video/BV1Mb411e7re?p=6
 */
void main_water_light() {
    int i = 0;
    P1 = 0xFE;  //最低位亮
    while(1) {
        Delayms(500);
        if(i < 7) {
            P1 = (P1 << 1) | 1;
            i++;
        } else {
            P1 = 0xFE;
            i = 0;
        }
    }
}
